home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 6 / FM Towns Free Software Collection 6.iso / t_os / et / src / et.h < prev    next >
Text File  |  1993-07-08  |  16KB  |  471 lines

  1. #ifndef   ET_H
  2.  
  3. #define   _AS
  4. /* 
  5. #undef    _AS
  6. */
  7. #include  <stdio.h> 
  8. #include  <string.h>
  9. #include  <stdlib.h>
  10. #include  <time.h>
  11. #include  <ctype.h>
  12. #include  <setjmp.h>
  13.  
  14. typedef unsigned                VRAM;     /* VRAM アクセス単位 */
  15.  
  16. #define N_LAST_DOT              72        /* 残量表示ドット数 */
  17. #define N_FONT_LEN              13216     /* 全メニュ文字列フォント長 */
  18. #define N_MENU_NAME             765       /* 全使用可能キー数 */
  19. #define MAX_MOUSE               15        /* マウス移動速度(16以上×)*/
  20. #define GETA_ET                 65536     /* 32ビット固定実数小数点位置 */
  21. #define Y_INC                   80        /* 横表示文字数 */
  22. #define VRAM_SIZE               0x20000   /* VRAM 1ページ幅 */
  23. #define VIEW_SIZE               0x12000   /* 図形表示範囲 */
  24. #define MAX_ICN                 64        /* 最大ファイルアイコン数 */
  25. #define pm_HOKAN                20        /* 未使用 */
  26. #define pm_PERS                 500       /* 遠近の標準値 */
  27. #define pm_DIST                 500       /* 距離 */
  28. #define pm_X_STEP               20        /* 横幅 */
  29. #define pm_Y_STEP               20        /* 縦幅 */
  30. #define pm_Z_STEP               20        /* 奥幅 */
  31. #define pm_ANGLE                15        /* 角度 */
  32. #define pm_STEREO               40        /* 視差 */
  33. #define nb_EDGE                 4         /* 初期カーソル辺の数 */
  34. #define BUF_SIZE                2000      /* マウスカーソル表示バッファ */
  35. #define MAX_KEY                 20000     /* 最大移動キー数 */
  36. #define CSR_SIZE                1000      /* 最大変更カーソル数 */
  37. #define BAR_SIZE                12*20     /* スペースバー表示サイズ */
  38. #define EOK                     255       /* END OF 移動キー */
  39. #define EOC                     127       /* END OF カーソル */
  40.  
  41. #define f_SS                    0x1       /* <保存> */
  42. #define f_LL                    0x2       /* <読込> */
  43. #define f_CC                    0x4       /* <カーソル> */
  44. #define f_EE                    0x8       /* <登録> */
  45. #define f_FF                    0x10      /* <F> */
  46. #define f_AA                    0x20      /* <動画> */
  47. #define f_NN                    0x40      /* <反転> */
  48. #define f_IO                    0x80      /* アイコン選択 */
  49. #define f_PPGG                  0x100     /* <遠近~角度> */
  50. #define f_WW                    0x200     /* <視差> */
  51. #define f_TT                    0x400     /* <TRIPHONY> */
  52. #define f_SPLINE                0x800     /* 未使用 */
  53. #define f_RR                    0x1000    /* 視差の補正 */
  54. #define f_CHK                   0x2000    /* データの要/不要チェック */
  55. #define f_AT                    0x4000    /* 補間間隔設定(未使用) */
  56. #define f_EXG                   0x8000    /* 平行法 */
  57. #define f_SV                    0x10000   /* 裸眼立体視モード */
  58. #define f_TROFF                 0x20000   /* 軌跡なし */
  59. #define f_TRON                  0x40000   /* 軌跡あり(<F> で使用) */
  60. #define f_PUSH                  0x80000   /* 表示キーを左クリックで ON */
  61. #define f_VIEW                  0x100000  /* カーソル現在位置表示 */
  62. #define f_DEMO                  0x200000  /* <デモ再現> */
  63. #define f_MAKE                  0x400000  /* <デモ作成> */
  64. #define f_REPLAY                0x800000  /* <入力再現> */
  65. #define f_REV                   0x1000000 /* 自転でない回転 */
  66. #define f_GPH                   0x2000000 /* 赤青立体視 */
  67. #define f_RND                   0x4000000 /* ランダムに残量表示 */
  68. #define f_BAR                   0x8000000 /* 図形描画中 */
  69. #define f_BLIND                 0x10000000/* 描画過程を表示しない */
  70. #define f_ABORT                 0x20000000/* 再現を中断 */
  71. #define f_AREA                  0x40000000/* 移動キーフリーエリアが満杯 */
  72. #define f_ERR                   0x80000000/* エラー発生 */
  73.  
  74. #define f2_PNA                  0x1       /* copy_pna() 初期化 */
  75. #define f2_FONT                 0x2       /* font() 初期化 */
  76. #define f2_MOUSE                0x4       /* マウスを任意の位置へ移動 */
  77. #define f2_MAIN                 0x8       /* 起動メニュ位置からマウス表示 */
  78. #define f2_RET                  0x10      /* RET キー位置からマウス表示 */
  79. #define f2_ERR_1                0x80000000/* <ディスクがいっぱいです> */
  80. #define f2_ERR_2                0x40000000/* <ファイルが作れません> */
  81. #define f2_ERR_3                0x20000000/* <メモリが足りません> */
  82. #define f2_ERR_4                0x10000000/* <ファイルがありません> */
  83.  
  84. enum {
  85.   P_SET,          /* ← opt.c で使用 */
  86.   P_RES,          /* ← opt.c で使用 */
  87.   P_NEG,          /* ← opt.c で使用 */
  88.   
  89.   POKE,           /* VRAM へ書き込み */
  90.   PEEK,           /* VRAM から読み出し */
  91.   
  92.   STORE,          /* 退避 */
  93.   RESTORE,        /* 復帰 */
  94.   EXCHANGE,       /* 交換 */
  95.   
  96.   BEF,            /* カーソル表示前の処理 */
  97.   AFT,            /* 表示後の処理 */
  98.   ENT,            /* <登録> での処理 */
  99.   
  100.   SCAN,           /* バッファからキーコード読み出し */
  101.   GETCH,          /* キーボードから読み出し */
  102.   WINK,           /* カーソル点滅 */
  103.   ICN,            /* 再現データから削除 */
  104.   
  105.   BREAK           /* ループ中断 */
  106. } N_mode;
  107.  
  108. enum {            /* 使用可能キーリストの先頭メニュNo. */
  109.   mn_LOGO,
  110.   mn_BS,
  111.   mn_SS, mn_LL, mn_CC, mn_EE, mn_HH, mn_AA, mn_NN, mn_OO, mn_RR,
  112.   mn_UP, mn_LT, mn_FR, mn_S_UP, mn_S_LT, mn_S_FR,
  113.   mn_DN, mn_RT, mn_BK, mn_S_DN, mn_S_RT, mn_S_BK,
  114.   mn_BAR, mn_JJ,
  115.   mn_ESC,
  116.   mn_AT, mn_PP, mn_DD, mn_XX, mn_YY, mn_ZZ, mn_GG, mn_WW,
  117.   mn_TAB, mn_INS,
  118.   mn_TT,
  119.   mn_C_UP, mn_C_LT, mn_C_FR,
  120.   mn_RET,
  121.   mn_C_DN, mn_C_RT, mn_C_BK,
  122.   mn_FF,
  123.   mn_POS, mn_RND,
  124.   mn_S_EE, mn_S_RR, mn_S_RET, mn_S_BS, mn_S_ESC,
  125.   mn_C_EE, mn_C_SS, mn_C_XX, mn_C_DD, mn_C_MM,
  126.   mn_END_RET, mn_END_ESC,
  127.   mn_FREE_AREA, mn_FREE_SAVE, mn_FREE_WORK,
  128.   mn_MN_AA, mn_MN_NN, mn_MN_OO,
  129.   mn_MN_DEL_AA, mn_MN_DEL_NN, mn_MN_DEL_OO,
  130.   mn_MN_AREA_AA, mn_MN_AREA_NN, mn_MN_AREA_OO,
  131.   mn_MN_CC,
  132.   mn_00, mn_11, mn_22, mn_33, mn_44, mn_55, mn_66, mn_77, mn_88, mn_99,
  133.   mn_LT_CC, mn_RT_CC, mn_UP_CC, mn_DN_CC, 
  134.   mn_MN_FF,
  135.   mn_0, mn_1, mn_2, mn_3, mn_4, mn_5, mn_6, mn_7, mn_8, mn_9, 
  136.   mn_A, mn_B, mn_C, mn_D, mn_E, mn_F,
  137.   mn_MN_TT,
  138.   mn_DISK,
  139.   mn_LT_TT, mn_RT_TT, mn_UP_TT, mn_DN_TT,
  140.   mn_TITLE,
  141.   mn_ERR_1, mn_ERR_2, mn_ERR_3, mn_ERR_4,
  142.   mn_DEMO, mn_MAKE, mn_REPLAY, mn_START,
  143.   mn_END,
  144.   mn_MESS_1,
  145.   mn_ICN,
  146.   mn_ERR
  147. } N_mn;
  148.  
  149. enum {
  150.   c_FILE_KEY, 
  151.   c_FILE_CSR, 
  152.   c_FILE_REPLAY, 
  153.   c_FILE_MESSAGE,
  154.   c_FILE_ICN_KEY, 
  155.   c_FILE_ICN_CSR, 
  156.   c_FILE_BAK, 
  157.   c_FILE_ET_TEMP, 
  158.   c_FILE_SPLINE,
  159.   c_PNA_NAME, 
  160.   c_DIR_NAME, 
  161.   c_COL_A, 
  162.   c_COL_G, 
  163.   c_COL_N, 
  164.   c_COL_DMY, 
  165.   c_KEY_0, 
  166.   c_ADD_KEY, 
  167.   c_CSR, 
  168.   c_DTA_TAB, 
  169.   c_PATT_FONT, 
  170.   c_GAIJI_FONT,
  171.   c_DIR,
  172.   c_PNA_OLD,
  173.   c_PNA_NEW,
  174.   c_PNA_BAR
  175. } N_c;
  176.  
  177. enum {
  178.   i_KEY_DEMO,
  179.   i_BLUE_KEY,
  180.   i_KEY_MOVE,
  181.   i_NOT_UP_TAB,
  182.   i_WIN_VRAM,
  183.   i_WIN_VIEW,
  184.   i_WIN_VIEW_LT,
  185.   i_WIN_VIEW_RT,
  186.   i_WIN_FRAME,
  187.   i_WIN_MENU,
  188.   i_WIN_VIEW_FRAME,
  189.   i_WIN_CHECK_FRAME,
  190.   i_WIN_CHECK_LT_FRAME,
  191.   i_WIN_CHECK_RT_FRAME,
  192.   i_WIN_BAR,
  193.   i_WIN_FREE_AREA,
  194.   i_WIN_FREE_SAVE,
  195.   i_WIN_FREE_WORK,
  196.   i_WIN_FREE_DISK,
  197.   i_WIN_PARA,
  198.   i_WIN_RET,
  199.   i_WIN_PNA,
  200.   i_WIN_FONT,
  201.   i_WIN_RANGE,
  202.   i_WIN_RANGE_LT,
  203.   i_WIN_RANGE_RT,
  204.   i_WIN_RANGE_B,
  205.   i_WIN_RANGE_LT_B,
  206.   i_WIN_RANGE_RT_B,
  207.   i_SIZE_VIEW,
  208.   i_SIZE_CHECK_VIEW,
  209.   i_SIZE_ICN,
  210.   i_FNT_CODE,
  211.   i_CSR_000_ET,
  212.   i_ANGLE,
  213.   i_PNA_N,
  214.   i_PNA_I,
  215.   i_JMP_BUF
  216. } N_i;
  217.  
  218. enum {
  219.   v_VIEW_0,
  220.   v_VIEW_1,
  221.   v_VIEW_2,
  222.   v_VIEW_3,
  223.   v_MOUSE_BUF,
  224.   v_MOUSE_BUF_2,
  225.   v_KEY_BUF,
  226.   v_KEY_BUF_2,
  227.   v_MOUSE_TMP,
  228.   v_MOUSE_TMP_2,
  229.   v_KEY_TMP ,
  230.   v_KEY_TMP_2 ,
  231.   v_VRAM,
  232.   v_BAR,
  233.   v_ICN
  234. } N_v;
  235.  
  236. enum {
  237.   dot_BAR, 
  238.   dot_FREE_AREA, 
  239.   dot_FREE_SAVE, 
  240.   dot_FREE_WORK
  241. } N_dot;
  242.  
  243. enum {/* 色コード(16色モード) */
  244.   L_BLK, L_BLU, L_RED, L_MZN, L_GRN, L_SYN, L_YEL, L_WHT,
  245.   H_BLK, H_BLU, H_RED, H_MZN, H_GRN, H_SYN, H_YEL, H_WHT
  246. } N_low_high_color; 
  247.  
  248. enum {/* キーNo. */
  249.   _KEY='0'-1,
  250.    _00, _11, _22, _33, _44, _55, _66, _77, _88, _99,
  251.    _RT, _LT, _DN, _UP, _FR, _BK, _AT,
  252.    _AA, _BB, _CC, _DD, _EE, _FF, _GG, _HH, _II, _JJ,
  253.    _KK, _LL, _MM, _NN, _OO, _PP, _QQ, _RR, _SS, _TT,
  254.    _UU, _VV, _WW, _XX, _YY, _ZZ, _BAR, _BS, _INS,
  255.    _HOME, _RET, _TAB, _ESC, _KO, _COLN, 
  256.   _SHIFT,                                               /* SHIFT+ */
  257.   S_00,S_11,S_22,S_33,S_44,S_55,S_66,S_77,S_88,S_99,
  258.   S_RT,S_LT,S_DN,S_UP,S_FR,S_BK,S_AT,
  259.   S_AA,S_BB,S_CC,S_DD,S_EE,S_FF,S_GG,S_HH,S_II,S_JJ,
  260.   S_KK,S_LL,S_MM,S_NN,S_OO,S_PP,S_QQ,S_RR,S_SS,S_TT,
  261.   S_UU,S_VV,S_WW,S_XX,S_YY,S_ZZ,S_BAR,S_BS,S_INS,
  262.   S_HOME,S_RET,S_TAB,S_ESC,S_KO,S_COLN,
  263.   _CTRL,                                                /* CTRL+ */
  264.   C_00,C_11,C_22,C_33,C_44,C_55,C_66,C_77,C_88,C_99,
  265.   C_RT,C_LT,C_DN,C_UP,C_FR,C_BK,C_AT,
  266.   C_AA,C_BB,C_CC,C_DD,C_EE,C_FF,C_GG,C_HH,C_II,C_JJ,
  267.   C_KK,C_LL,C_MM,C_NN,C_OO,C_PP,C_QQ,C_RR,C_SS,C_TT,
  268.   C_UU,C_VV,C_WW,C_XX,C_YY,C_ZZ,C_BAR,C_BS,C_INS,
  269.   C_HOME,C_RET,C_TAB,C_ESC,C_KO,C_COLN,
  270.   _SHIFT_CTRL,                                        /* SHIFT+CTRL+ */
  271.   S_C_00,S_C_11,S_C_22,S_C_33,S_C_44,S_C_55,S_C_66,S_C_77,S_C_88,S_C_99,
  272.   S_C_RT,S_C_LT,S_C_DN,S_C_UP,S_C_FR,S_C_BK,S_C_AT,
  273.   S_C_AA,S_C_BB,S_C_CC,S_C_DD,S_C_EE,S_C_FF,S_C_GG,S_C_HH,S_C_II,S_C_JJ,
  274.   S_C_KK,S_C_LL,S_C_MM,S_C_NN,S_C_OO,S_C_PP,S_C_QQ,S_C_RR,S_C_SS,S_C_TT,
  275.   S_C_UU,S_C_VV,S_C_WW,S_C_XX,S_C_YY,S_C_ZZ,S_C_BAR,S_C_BS,S_C_INS,
  276.   S_C_HOME,S_C_RET,S_C_TAB,S_C_ESC,S_C_KO,S_C_COLN
  277. } N_key;
  278.   
  279. #define ICN_I (C_COLN+1)/* == (ファイルアイコンNo.0)->key */
  280.  
  281. typedef struct {/* 空間上のカーソル */
  282.   int   xyz[6];         /* 座標値 */
  283. } ET;
  284.   
  285. typedef struct {/* 表示上のカーソル */
  286.   int   pq[4];          /* 座標値 */
  287.   int   f;              /* 表示/非表示を指定 */
  288. } EDGE;
  289.   
  290. typedef struct {/* 移動データ */
  291.   int   x, y, z;        /* 未使用 */
  292.   short key, r;         /* 移動/回転キー, 視差 */
  293. } MOVE;
  294.  
  295. typedef struct {/* 諸変数 */
  296.   int   hokan;          /* 未使用 */
  297.   int   pers;           /* 遠近 */
  298.   int   dist;           /* 距離 */
  299.   int   x_step;         /* 横幅 */
  300.   int   y_step;         /* 縦幅 */
  301.   int   z_step;         /* 奥幅 */
  302.   int   angle;          /* 角度 */
  303.   int   r;              /* 視差 */
  304. } PM;
  305.  
  306. typedef union {
  307.   PM    i;              /* 演算時 */
  308.   int   a[8];           /* 設定時 */
  309. } PARAMETER;
  310.  
  311. typedef struct {/* pna.c でのみ使用 */
  312.   int   col;            /* PNA ファイル名表示色 */
  313.   int   p, q;           /* 表示位置 */
  314.   char  s[100];         /* ファイル名 */
  315. } TT;
  316.  
  317. struct  _NAME {/* 使用可能キーリスト */
  318.   int   key, n;         /* 使用可能キー, メニュNo. */
  319.   int   pq[4];          /* 表示キーの画面上の大きさ */
  320.   struct _NAME *next;   /* mn_SS, mn_LL, mn_EE, mn_CC で mn_ICN へ接続 */
  321. };
  322. typedef struct _NAME  NAME;
  323.  
  324. typedef struct {/* モードメニュ */
  325.   char  *s, *font;      /* メニュ文字列, 同フォント */
  326.   int   key, len, p, q; /* メニュ選択キー, 文字列長さ, 表示位置 */
  327.   NAME  *name;          /* 使用可能キーリストへのポインタ */
  328. } MENU;
  329.  
  330. struct _DIR {/* PNA ファイル名リスト(未使用VRAM上に作成)*/
  331.   struct _DIR *pre;     /* 前 */ 
  332.   struct _DIR *dir;     /* 自分 */
  333.   struct _DIR *next;    /* 次 */
  334.   int   len;            /* ファイル名長さ */
  335.   char  *s;             /* ファイル名文字列 */
  336. };
  337. typedef struct _DIR DIR;
  338.  
  339. typedef struct {/* 大域諸変数 */
  340.   int   edge, cut, page;/* カーソルの辺の数, クリックNo., 表示ページNo. */
  341.   int   et;             /* カーソルNo. */
  342.   int   edge_b;         /* カーソル辺数バックアップ(entry.c) */
  343.   int   key, csr;       /* 移動, カーソルのデータファイル数 */
  344.   int   icn;            /* アイコンNo. */
  345.   int   ps_r;           /* 裸眼立体視での図形間隔 */
  346.   int   replay;         /* 入力キー(再現データ)へのポインタ */
  347.   int   drive;          /* 容量チェック対象ドライブNo. */
  348.   int   mn;             /* 現在のメニュNo. */
  349.   int   col;            /* カーソル位置マーカ表示色 */
  350.   int   mouse;          /* マウスカーソル移動速度カウンタ */
  351.   int   current;        /* 起動時カレントドライブNo. */
  352.   int   pna_drive;      /* PNA ファイルドライブNo. */
  353.   int   max_edge;       /* 最大カーソル辺数 */
  354.   int   dev, mod, dev_i, mod_i, dot_i;/* 残量表示関係 */
  355.   int   key_i;          /* 移動キーNo.(視差の補正で使用)*/
  356. } NUMBER;
  357.   
  358. typedef struct {/* カーソル現在位置 */
  359.   int   x, y, z;        /* 空間座標値 */
  360.   int   x_g, y_g, z_g;  /* 未サポート */
  361. } POSITION;
  362.   
  363. typedef struct {
  364.   char  *csr;           /* 使用カーソルリスト */
  365.   char  *dir;           /* ディレクトリ名リスト(ドライブ変更毎に更新)*/
  366.   char  *pna;           /* ドライブ名¥ディレクトリ名¥PNA ファイル名リスト */
  367.   char  *fp;            /* 未使用 VRAM 上の現在位置(<デモ再現>) */
  368.   char  *key_fp;        /* 同じく移動データ位置 */
  369.   char  *csr_fp;        /* 同じくカーソルデータ位置 */
  370.   int   *demo;          /* デモデータ(etd.h)位置 */
  371.   int   *wink;          /* 表示内容パッチのウインド位置 */
  372.   void  (*range)();     /* カーソル位置表示関数の別 */
  373.   void  (*range_b)();   /* 消去用 */
  374.   void  (*range_lt)();  /* 左用 */
  375.   void  (*range_lt_b)();
  376.   void  (*range_rt)();  /* 右用 */
  377.   void  (*range_rt_b)();
  378. } POINTER;/* ポインタ */
  379.   
  380. typedef struct {
  381.   EDGE  *edge;          /* 表示上のカーソルバッファ */
  382.   char  *et_buf;        /* 登録, 立体視等で使用 */
  383.   char  *edge_buf;      /* 同様 */
  384.   char  *key[80];       /* 未使用 VRAM 上の各移動データ位置先頭 */
  385.   char  *csr[80];       /* 同じく各カーソルデータ位置先頭 */
  386.   char  *key_icn[80];   /* 同じく各移動アイコン位置先頭 */
  387.   char  *csr_icn[80];   /* 同じく各カーソルアイコン位置先頭 */
  388.   DIR   *dir;           /* ディレクトリリスト先頭 */
  389.   DIR   *pna;           /* PNA ファイルリスト先頭 */
  390. } BUFFER;
  391.   
  392. typedef struct {/* 表示位置 */
  393.   int   p, q;
  394. } PQ;
  395.  
  396. typedef struct {/* 残量表示関係 */
  397.   char  *rnd;
  398.   PQ    *pq, *mpq;
  399. } DOT;
  400.   
  401. typedef struct {/* 図形表示範囲指定 */
  402.   int   x, y;           /* 縦横表示幅 */
  403.   int   xo, yo;         /* 表示の中心位置指定 */
  404. } VIEW;
  405.     
  406. typedef struct {/* 使用カーソルリスト */
  407.   char  csr[MAX_ICN];
  408. } IDX;
  409.   
  410. typedef struct {/* DTA テーブル */
  411.   int   seg;
  412.   int   *addr;
  413. } DTA;
  414.  
  415. #define not_bit(f,i)            (f^=(i))
  416. #define res_bit(f,i)            (f&=~(i))
  417. #define set_bit(f,i)            (f|=(i))
  418. #define test_bit(f,i)           (f&(i))
  419. #define vram_addr(x,y,p)        (VRAM *)((x)/2+(y)*0x140+((p)?0:VRAM_SIZE))
  420. #define access_page()           G_nb.page=!G_nb.page
  421. #define display_page(page)      OUTPB(0x000cff82,(page)?0x67:0x77)
  422. #define poke_dir(Dir,Far)       _far_copy_buf(0x14,Dir,0x120,Far,sizeof(DIR))
  423. #define peek_dir(Dir,Far)       _far_copy_buf(0x120,Far,0x14,Dir,sizeof(DIR))
  424. #define push_key(n_menu)        mark_key(1,n_menu,color)
  425. #define pull_key(n_menu)        mark_key(2,n_menu,color)
  426. #define isin(deg)               P_i[i_ANGLE][(int)deg]
  427. #define icos(deg)               P_i[i_ANGLE][90-(int)deg]
  428.  
  429. #ifdef  _AS
  430.   #define line                  __line
  431.   #define x_rot                 __x_rot
  432.   #define y_rot                 __y_rot
  433.   #define z_rot                 __z_rot
  434.   #define cul_r                 __cul_r
  435.   #define clip_z1               __clip_z1
  436.   #define clip_z2               __clip_z2
  437. #else
  438.   #define line                  _line
  439.   #define x_rot                 _x_rot
  440.   #define y_rot                 _y_rot
  441.   #define z_rot                 _z_rot
  442.   #define cul_r                 _cul_r
  443.   #define clip_z1               _clip_z1
  444.   #define clip_z2               _clip_z2
  445. #endif
  446.  
  447. #ifndef STATIC_C                /* static.c 以外で以下を宣言 */
  448.   extern char                   *P_c[];
  449.   extern int                    *P_i[];
  450.   extern VRAM                   *P_v[];
  451.   extern DOT                    *P_dot[];
  452.   extern MENU                   G_mn[];
  453.   extern IDX                    G_id[];
  454.   extern MOVE                   G_mv[];
  455.   extern NUMBER                 G_nb;
  456.   extern PARAMETER              G_pm;
  457.   extern POSITION               G_ps;
  458.   extern POINTER                G_pn;
  459.   extern BUFFER                 G_bf;
  460.   extern VIEW                   G_vi;
  461.   extern jmp_buf                G_jb;
  462.   extern unsigned               G_f, G_f2;
  463.   extern ET                     *G_et;
  464.   extern EDGE                   *G_edge;
  465.   extern FILE                   *G_file;
  466. #endif
  467.  
  468. #include  "etp.h"
  469. #endif  /* ET_H */
  470. #define ET_H
  471.